package com.snail.ron.design.factory.factory;

import com.snail.ron.design.factory.model.Keyboard;

/**
 * @author xueguoping
 * @desc: TODO
 * 解决类简单工厂中的新增子类，需要增加if-else问题；
 * 为每一个键盘子类建立一个对应的工厂子类，这些工厂子类实现同一个抽象工厂接口。
 * 这样，创建不同品牌的键盘，只需要实现不同的工厂子类。
 *
 * 当有新品牌加入时，新增具体工厂继承抽象工厂，而不用修改任何一个类。
 *
 * 缺点
 * 每一种品牌对应一个工厂子类，在创建具体键盘对象时，实例化不同的工厂子类。
 * 但是，如果业务涉及的子类越来越多，难道每一个子类都要对应一个工厂类吗？这样会使得系统中的类的个数成倍增加，增加类代码的复杂度。
 * @date 2022/4/1410:10
 */
public interface Factory {
    Keyboard getInstance();
}
